from sqlalchemy.orm import Session

from dao.slide_dao import get_slides_by_ppt, update_slide_fields, get_one_slide_ppt_index
from pojo.slide import Slide
from utils.log import logger
from config.mysql_config import get_db


def update_slide_img_url(db: Session, data: dict, ppt_id):
    """
    更新slide表的img_url字段
    :param db:数据库连接池
    :param data:包含有slide_index和imgurl的键值对json，例如{'1': 'http://121.195.170.40:9000/slide-picture/电力行业PPT-1'}
    :param ppt_id:pptid
    :return:
    """
    slides = get_slides_by_ppt(db, ppt_id)
    return slides


def add_slide_service(slide: Slide):
    return None


def update_slide_fields_service(slide_id: int, slide_fields: dict):
    """
    对slide的一些字段进行更新
    :param slide_id: slide_id
    :param slide_fields: 需要更新的字段
    :return: 更新后的slide，以字典形式返回
    """
    with get_db() as db:
        slide = update_slide_fields(db, slide_id, slide_fields)
        return slide.to_dict()


def get_slides_by_ppt_service(ppt_id: int):
    """
    通过ppt_id拿到对应所有的slide
    :param ppt_id:
    :return: 以slides字典组成的字典数据
    """
    with get_db() as db:
        slides = get_slides_by_ppt(db, ppt_id)
        return slides


def get_one_slide_ppt_index_service(ppt_id: int, slide_index: int):
    """

    :param ppt_id:
    :param slide_index:
    :return:
    """
    with get_db() as db:
        slide = get_one_slide_ppt_index(db, ppt_id, slide_index)
        return slide.to_dict()
